package com.doitedu.core

import com.alibaba.fastjson.JSON
import com.doitedu.beans.RDDUserBean
import com.doitedu.utils.SparkUtil

/**
 * @Date: 22.6.29 
 * @Author: HANGGE
 * @qq: 598196583
 * @Tips: 学大数据 ,到多易教育
 * @Description:
 * 将JSON数据解析成类
 *
 *
 */
object C12_LoadJson {
  def main(args: Array[String]): Unit = {
    val sc = SparkUtil.getSparkContext("load json")

    val rdd = sc.textFile("data/user/")
    // 将数据转换成 RDDUserBean
    var i = 0
    val resRDD = rdd.map(line => {
      var bean: RDDUserBean = null
      try {
        bean = JSON.parseObject(line, classOf[RDDUserBean])
        bean
      } catch {
        case e: Exception => {
          i+=1
          bean
        }
      }
    })
    // 压痕就没有办法统计脏数据的条数  为什么?   i定义在Driver端    |||  i+=1 发生在远程执行端
    println(i)
    // 过滤出脏数据 空值
    resRDD.filter(_!=null).foreach(println)
    sc.stop()
  }

}
